home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
c
/
mtask.exe
/
DEMO.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-05-09
|
1KB
|
55 lines
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "mtask.h"
int ntasks = 1;
void Task2(void)
{
float x1,y1,x2,y2,ix,iy;
int num;
x1=y1=x2=y2=10;
ix=iy=0.9;
num = ntasks++;
for(;;){
MTXYPutch(x1,y1,'@'+num);
MTXYPutch(x2,y2,' ');
x2=x1;
y2=y1;
x1 += ix;
y1 += iy;
ix = x1 > 79 ? -((float)(rand() % 10)+1)/10 : ix;
ix = x1 < 2 ? ((float)(rand() % 10)+1)/10 : ix;
iy = y1 > 23 ? -((float)(rand() % 10)+1)/10 : iy;
iy = y1 < 2 ? ((float)(rand() % 10)+1)/10 : iy;
}
}
void Task1(void)
{
char ch,buf[80];
while(1) {
sprintf(buf,"%d tasks running. Press 'a' add new task, 'r' to remove or 'q' to end.",ntasks);
MTXYPuts(1,25,buf);
ch = MTGetch();
if(ch=='q') EndMultiTasking();
else if (ch == 'a') AddNewTask((PTaskFunc) Task2);
else if (ch == 'r') RemoveTask(--ntasks);
}
}
void main(void)
{
clrscr();
InitMultiTasking();
AddNewTask((PTaskFunc) Task1);
AddNewTask((PTaskFunc) Task2);
StartMultiTasking();
clrscr();
}